package jianzhi;

/**
 * description:
 * author:zt
 * date:2021-08-06
 */

/**
 * 给定一个含有n个正整数的数组和一个正整数 target 。
 *
 * 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ，并返回其长度。如果不存在符合条件的子数组，返回 0 。
 *
 */
public class jianzhi008 {
    public static void main(String[] args) {
        System.out.println(minSubArrayLen(7, new int[]{2, 3, 1, 2, 4, 3}));
    }
    public static int minSubArrayLen(int target, int[] nums) {
        int ans = Integer.MAX_VALUE;
        int L = 0, R = L;
        int count = 0;
        while (L<=R && R<nums.length){
            count += nums[R];
            while (count>=target) {
                ans = Math.min(ans,R-L+1);
                count -= nums[L++];
            }
            R++;
        }
        return ans== Integer.MAX_VALUE? 0:ans;
    }
}
